Properly offset y coordinate accordining to render_y0.
author05:27:43 2000 Owen Taylor <otaylor@redhat.com>
Mon, 24 Apr 2000 05:28:02 +0000 (05:28 +0000)
committerOwen Taylor <otaylor@src.gnome.org>
Mon, 24 Apr 2000 05:28:02 +0000 (05:28 +0000)
2000-04-22 05:27:43 2000  Owen Taylor  <otaylor@redhat.com>

* gdk-pixbuf/pixops/pixops.c (pixops_scale_nearest): Properly
offset y coordinate accordining to render_y0.

* gdk-pixbuf/gdk-pixbuf-scale.c: Properly handle nonzero
dest_x, dest_y.

gdk-pixbuf/ChangeLog
gdk-pixbuf/gdk-pixbuf-scale.c
gdk-pixbuf/pixops/pixops.c

index ec63ea537559f7c1d2721dc4462e06e3d64ffb8b..f51b3517c0095ef14901c77a51d2aa6a95943b26 100644 (file)
@@ -1,3 +1,11 @@
+2000-04-22 05:27:43 2000  Owen Taylor  <otaylor@redhat.com>
+
+       * gdk-pixbuf/pixops/pixops.c (pixops_scale_nearest): Properly
+       offset y coordinate accordining to render_y0.
+
+       * gdk-pixbuf/gdk-pixbuf-scale.c: Properly handle nonzero
+       dest_x, dest_y.
+
 2000-04-22  James Henstridge  <james@daa.com.au>
 
        * gdk-pixbuf.spec.in (%files): moved %{prefix}/bin/* from the main
index 8b5a159e48e9e778306f5dee8496633d5e0b29da..23c4ffa5718fc29fd3a7d4e06cfeaa4581887089 100644 (file)
@@ -68,7 +68,8 @@ gdk_pixbuf_scale (const GdkPixbuf *src,
   offset_y = floor (offset_y + 0.5);
   
   pixops_scale (dest->pixels + dest_y * dest->rowstride + dest_x * dest->n_channels,
-               -offset_x, -offset_y, dest_width - offset_x, dest_height - offset_y,
+               dest_x - offset_x, dest_y - offset_y, 
+               dest_x + dest_width - offset_x, dest_y + dest_height - offset_y,
                dest->rowstride, dest->n_channels, dest->has_alpha,
                src->pixels, src->width, src->height,
                src->rowstride, src->n_channels, src->has_alpha,
@@ -118,7 +119,8 @@ gdk_pixbuf_composite (const GdkPixbuf *src,
   offset_x = floor (offset_x + 0.5);
   offset_y = floor (offset_y + 0.5);
   pixops_composite (dest->pixels + dest_y * dest->rowstride + dest_x * dest->n_channels,
-                   -offset_x, -offset_y, dest_width - offset_x, dest_height - offset_y,
+                   dest_x - offset_x, dest_y - offset_y, 
+                   dest_x + dest_width - offset_x, dest_y + dest_height - offset_y,
                    dest->rowstride, dest->n_channels, dest->has_alpha,
                    src->pixels, src->width, src->height,
                    src->rowstride, src->n_channels, src->has_alpha,
@@ -180,7 +182,8 @@ gdk_pixbuf_composite_color (const GdkPixbuf *src,
   offset_y = floor (offset_y + 0.5);
   
   pixops_composite_color (dest->pixels + dest_y * dest->rowstride + dest_x * dest->n_channels,
-                         -offset_x, -offset_y, dest_width - offset_x, dest_height - offset_y,
+                         dest_x - offset_x, dest_y - offset_y, 
+                         dest_x + dest_width - offset_x, dest_y + dest_height - offset_y,
                          dest->rowstride, dest->n_channels, dest->has_alpha,
                          src->pixels, src->width, src->height,
                          src->rowstride, src->n_channels, src->has_alpha,
index 040f1df6d08aa8698c83dc5ed0c8169de0002ea7..d9592659d00d9feb6389a6d75b465f16f66c6677 100644 (file)
@@ -93,7 +93,7 @@ pixops_scale_nearest (guchar        *dest_buf,
 
   for (i = 0; i < (render_y1 - render_y0); i++)
     {
-      const guchar *src  = src_buf + ((i * y_step + y_step / 2) >> SCALE_SHIFT) * src_rowstride;
+      const guchar *src  = src_buf + (((i + render_y0) * y_step + y_step / 2) >> SCALE_SHIFT) * src_rowstride;
       guchar       *dest = dest_buf + i * dest_rowstride;
 
       x = render_x0 * x_step + x_step / 2;